Traditionally, all computer software contains two fundamental constructs: data and the functions that manipulate the data. Historically, educational simulations have blended the two together. Most educational simulation use tree structures to define where the student is in the simulation, and within each node of the tree, there has been both data and functions that control the data. The problem is that this is very inefficient because it spreads the programming throughout the data and tree and makes finding “bugs” more difficult. Therefore, in the past, the level of skill required to create an educational simulation has been very high. Educational simulation creation has typically required someone with significant computer programming skills.
The present invention solves this problem by separating the data from the functions that manipulate the data. The control functions have been separated into algorithms which are separate from the data of the simulation. By creating a custom control algorithm, the present invention has also enforced quality because all simulation designers have to create simulations that conform to the algorithm. Another benefit to this model is increased speed of operation due to the streamlining of each algorithm for its specific purpose.
Another way to create educational simulations would be to use a rule-based expert system or other traditional Artificial Intelligence technologies. In a rule-based expert system there are rules, facts and an inference engine. First, the system asserts facts, then the rules run and “inferences” are made. An example is:
   Assert Fact → MopsyDog has #ofMopsyLegs, TypeofMopsyFur   Assert Fact → #ofMopsyLegs = 3   Assert Fact → #ofMopsyLegsGrowing = 0   Assert Fact → TypeofMopsyFur = Brown   Run Rule → #ofMopsyLegs = #ofMopsyLegs +   #ofMopsyLegsGrowing   Run Rule → if (?Variable? has (Legs = 4) and (Fur = Brown))   then (Assert Fact − ?Variable? = Dog)Run Inference EngineResults:   Fact → MopsyDog has (#ofMopsyLegs = 3),   (TypeofMopsyFur = Brown)   Assert Fact → #ofMopsyLegsGrowing = 1Run Inference EngineResults:   Fact → MopsyDog has (#ofMopsyLegs = 4),   (TypeofMopsyFur = Brown)   Fact → MopsyDog is Dog
A Rule-Based Expert System is used to define new facts such as “MopsyDog is Dog.” It could be used to control an educational simulation. There are two big drawbacks to using an inference engine to control an educational simulation. First, AI technologies and rule-based expert systems use too much of a computer's random access memory. The amount of analysis required for the inference engine is great. Second, the artificial intelligence technologies allow for main control structures to mix data and functions. By allowing the mixture of functions and data, the amount of debugging and expertise in programming each simulation is greater than the present invention.